
export enum InitTypeEnum {
    interface = 'interface', // get interface data
    compatible = 'compatible', // if interface error, get local data
    local = 'local' // local mode ,not request interface
}

export enum ProxyTypeEnum {
    NORMAL = 'normal',
    RESTFUL = 'restful'
}

export interface IBaseConfig {
    initType?: InitTypeEnum;
    record_log: string;
    cookie?: string;
}

export type ProxyContexts = string | string[] | RegExp | RegExp[];

export interface IProxyOption extends IKeyValue {
    target: string; // 目标代理地址
    initType: InitTypeEnum; // 启动类型
    proxyType?: ProxyTypeEnum; // 代理api类型
    context: ProxyContexts, // 代理地址匹配规则
    exclude?: ProxyContexts, // 不包含匹配规则
    cookie?: string; // cookie代理
    host?: string; // 用户区分来源地址
    /*************custom**************/
    projectName?: string; // 代理项目名称
    successCode?: string | number;
    codeField?: string;
    externalApi?: (string | RegExp)[];
}

export interface IKeyValue {
    [key: string]: any;
}
